package com.mfangsoft.zhuangjialong.common.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class SendSMS {
	public static boolean sendSMS(String phone, String message, String message_suf) {
		System.setProperty("sun.net.client.defaultConnectTimeout", "30000"); // 连接超时：30秒
		System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时：30秒

		// 新建一个StringBuffer链接
		StringBuffer buffer = new StringBuffer();

		// String encode = "GBK";
		// //页面编码和短信内容编码为GBK。重要说明：如提交短信后收到乱码，请将GBK改为UTF-8测试。如本程序页面为编码格式为：ASCII/GB2312/GBK则该处为GBK。如本页面编码为UTF-8或需要支持繁体，阿拉伯文等Unicode，请将此处写为：UTF-8

		String encode = "UTF-8";

		// 手机号,只发一个号码：13800000001。发多个号码：13800000001,13800000002,...N 。使用半角逗号分隔。

		try {

			String contentUrlEncode = URLEncoder.encode(message + message_suf, encode); // 对短信内容做Urlencode编码操作。注意：如

			// 把发送链接存入buffer中，如连接超时，可能是您服务器不支持域名解析，请将下面连接中的：【m.5c.com.cn】修改为IP：【115.28.23.78】
			buffer.append("http://m.5c.com.cn/api/send/index.php?username=" + PropUtis.getValue(PropUtis.SMS_USERNAME)
					+ "&password_md5=" + PropUtis.getValue(PropUtis.SMS_PASSWORD_MD5) + "&mobile=" + phone + "&apikey="
					+ PropUtis.getValue(PropUtis.SMS_APIKEY) + "&content=" + contentUrlEncode + "&encode=" + encode);

			// System.out.println(buffer); //调试功能，输入完整的请求URL地址

			// 把buffer链接存入新建的URL中
			URL url = new URL(buffer.toString());

			// 打开URL链接
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();

			// 使用POST方式发送
			connection.setRequestMethod("POST");

			// 使用长链接方式
			connection.setRequestProperty("Connection", "Keep-Alive");

			// 发送短信内容
			BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));

			// 获取返回值
			String result = reader.readLine();
			// 输出result内容，查看返回值，成功为success，错误为error，详见该文档起始注释
			System.out.println(result);
			if (result.startsWith("error")) {
				return false;
			}

		} catch (Exception e) {
			System.out.println("======================短信异常==");
			e.printStackTrace();

			return false;

		}
		return true;
	}
}
